/**
 * Author@ Cheng Feitian
 * Date: 2021-4-28
 * Description: 类模板中成员函数创建时机
 * 1.类模板中成员函数在调用时才去创建
 * 2.普通类中的成员函数一开始就创建
 */

#include <algorithm>
#include <iostream>
#include <string>

using namespace std;
const int maxn = 1024;

class Person1
{
public:
    void showPerson1()
    {
        cout << "Person1 show" << endl;
    }
};

class Person2
{
public:
    void showPerson2()
    {
        cout << "Person2 show" << endl;
    }
};

template <class T>
class MyClass
{
public:
    T obj;

    //类模板中的成员函数
    void func1()
    {
        obj.showPerson1();
    }

    void func2()
    {
        obj.showPerson2();
    }
};

void test01()
{
    MyClass<Person1> m;
    m.func1();
    // m.func2();   //编译出错，说明函数调用才回去创建成员函数
}

int main()
{
    test01();
    return 0;
}
